Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix of the sign convention of rotation matrices #172

Open
wants to merge 17 commits into
base: develop
Choose a base branch
from

Conversation

cborschensky
Copy link

Fixes #169. The mismatch between conventions of rotation matrices is resolved by enforcing the parametrisation of arXiv:2007.02985, Eqs. (5) ff.

We implement a new function AdjustRotationMatrix() which calculates the rotation matrix in the parametrisation of the given paper and ensures that the rotation angles are within $-\frac{\pi}{2}$ and $+\frac{\pi}{2}$. This new rotation matrix, saved in the vector HiggsRotationMatrixEnsuredConvention, is then used for the calculation inside TripleHiggsCouplings(). The convention for the rotation matrices and angles as calculated by BSMPT now also agrees with the one used in the ScannerS code.

Additionally, the indices for the mass eigenstates in the rotation matrix are now computed just once for all implemented models inside the respective AdjustRotationMatrix() function (previously, the indices were computed separately in the write() and TripleHiggsCouplings() functions).

General structure of the changes and implementation for the R2HDM by @lisabiermann.

@vollous
Copy link
Collaborator

vollous commented Nov 6, 2024

Can you make this PR to the "develop" branch?

@cborschensky cborschensky changed the base branch from master to develop November 6, 2024 11:07
@cborschensky
Copy link
Author

Can you make this PR to the "develop" branch?

Done!

@lisabiermann lisabiermann added the bug Something isn't working label Nov 6, 2024
dependabot bot and others added 3 commits November 14, 2024 08:41
…er#176)

Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.4 to 4.6.9.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](JamesIves/github-pages-deploy-action@v4.6.4...v4.6.9)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Copy link
Collaborator

@vollous vollous left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes broke two unit tests:

  • 17 - Checking triple higgs NLO couplings in the C2HDM (Failed)
  • 43 - Checking triple higgs NLO couplings in the CPINTHEDARK (Failed)

Please check what is happening.

This fix probably comes from some mistake BSMPT was making, can you add a unit test for that specific mistake, so that we prevent it in the future.

@@ -98,6 +98,10 @@ class Class_Potential_C2HDM : public Class_Potential_Origin
double CTempC1 = 0, CTempC2 = 0, CTempCS = 0;
double R_Hh_1 = 0, R_Hh_2 = 0, R_Hh_3 = 0, R_Hl_1 = 0, R_Hl_2 = 0, R_Hl_3 = 0,
R_Hsm_1 = 0, R_Hsm_2 = 0, R_Hsm_3 = 0;

int pos_G0, pos_G1, pos_G2, pos_H1, pos_H2, pos_h1, pos_h2, pos_h3;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using the sufixes 1 as + and 2 as - might be a bit confusing, particular when h1exists.
Could we use

G1 = Gp
G2 = Gm
H1 = Hp
H2 = Hm

instead?

@@ -99,6 +99,10 @@ class Class_Potential_N2HDM : public Class_Potential_Origin
double NDus = 0, NDL6 = 0, NDL7 = 0, NDL8 = 0, NDvs = 0, NDTS = 0;
double DTCharged = 0;

int pos_G0, pos_G1, pos_G2, pos_H1, pos_H2;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using the sufixes 1 as + and 2 as - might be a bit confusing, particular when h1exists.
Could we use

G1 = Gp
G2 = Gm
H1 = Hp
H2 = Hm

instead?

@@ -90,6 +90,9 @@ class Class_Potential_R2HDM : public Class_Potential_Origin
int Type = 0;
double CTempC1 = 0, CTempC2 = 0, CTempCS = 0;

int pos_G1, pos_G2, pos_H1, pos_H2, pos_G0, pos_A, pos_H, pos_h;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using the sufixes 1 as + and 2 as - might be a bit confusing, particular when h1exists.
Could we use

G1 = Gp
G2 = Gm
H1 = Hp
H2 = Hm

instead?

NeutralHiggs[i] = HiggsMasses[posN.at(i)];
int ii = int(i);
int jj = int(j);
if (not((jj == pos_rho1 and (ii == pos_G1 or ii == pos_H1)) or
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This piece of code is a bit confusing, what is it checking for? Can you refactor it a little bit?

MhDown = std::sqrt(NeutralHiggs[0]);
int ii = int(i);
int jj = int(j);
if (not((jj == pos_si_rho1 and (ii == pos_si_G1 or ii == pos_si_H1)) or
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is it checking for? Can you refactor it a little bit?

{
int ii = int(i);
int jj = int(j);
if (not((jj == pos_Gp and ii == pos_Gp) or
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This piece of code is a bit confusing, what is it checking for? Can you refactor it a little bit?

countposN++;
int ii = int(i);
int jj = int(j);
if (not((jj == pos_rho1 and (ii == pos_G1 or ii == pos_H1)) or
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This piece of code is a bit confusing, what is it checking for? Can you refactor it a little bit?

src/models/ClassPotentialOrigin.cpp Outdated Show resolved Hide resolved
{
if (!almost_the_same(inv(i, j), transp(i, j), precision))
{
InvEqTrans = false;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor improvements here. If we reach this spot we can return false right away without having to check for all other matrix elements.

HiggsRot(i, j) = HiggsRotationMatrix[i][j];
int ii = int(i);
int jj = int(j);
if (not((jj == pos_rho1 and (ii == pos_G1 or ii == pos_H1)) or
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This piece of code is a bit confusing, what is it checking for? Can you refactor it a little bit?

@lisabiermann
Copy link
Collaborator

These changes broke two unit tests:

* 17 - Checking triple higgs NLO couplings in the C2HDM (Failed)

* 43 - Checking triple higgs NLO couplings in the CPINTHEDARK (Failed)

Please check what is happening.

This fix probably comes from some mistake BSMPT was making, can you add a unit test for that specific mistake, so that we prevent it in the future.

This was expected. We have to re-generate the unit test sources with the corrected trilinear couplings.

phbasler and others added 3 commits December 9, 2024 10:04
* Combine linters

* Add whitelines to trigger formatting

* Automatically applied linter

* add linter PAT

* Automatically applied linter

* Remove new lines

* rename linter job

---------

Co-authored-by: GitHub Actions Bot <>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mismatch in rotation matrix convention leading to sign flips in trilinear couplings
4 participants